/* This program is free software. It comes without any warranty, to
 * the extent permitted by applicable law. You can redistribute it
 * and/or modify it under the terms of the Do What The Fuck You Want
 * To Public License, Version 2, as published by Sam Hocevar. See
 * http://sam.zoy.org/wtfpl/COPYING for more details. */ 
package de.rockon.fuzzy.controller.operators.raw;

import de.rockon.fuzzy.controller.operators.AbstractOperator;
import de.rockon.fuzzy.controller.util.factories.IconFactory;

/**
 * Komplement Operator
 */
public class ComplementOperator extends AbstractOperator<Double> {

	/**
	 * liefert das Komplement
	 * 
	 * @param value
	 * @return
	 */
	@Override
	public Double execute() {
		if (operands.size() == 1) {
			return 1.0 - operands.poll();
		}

		return -1.0;
	}

	@Override
	public String getDescription() {
		return "Performs the Complement-Operation";
	}

	@Override
	public String getIcon() {
		return IconFactory.ICON_RULE_COMPLEMENT;
	}

	@Override
	public String toString() {
		return "NOT";
	}
}